# open打开文件 open('文件名'，'访问模式')
# f = open('1.txt', 'w')    # 只写
# f = open('1.txt', 'a')    # 追加
# f = open('1.txt', 'r')    # 只读
# f = open('1.txt')    # 不写访问模式，默认只读
# f.write('hhhh')   # 文件写入
# print(f.read())    # 文件读取
# print(f.readlines())   # 返回列表，以行方式读取文件所有内容，每一行是一个列表元素
# print(f.readline())    #  第一次调用读取文件第一行数据
# print(f.readline())    #  第二次调用读取文件第二行数据
# f.seek(2, 0)  # 修改文件指针位置（偏移量，指针位置0（开头），1（当前位置），2（结尾））
# print(f.readline())   # 指针原本在0（开头）位置偏移2位，从第三个位置输出
# f.close()


# 当访问模式为 'r' ,文件只读，如果文件不存在会报错，不能进行wirte写入操作
# 当访问模式为 'w' ,文件只写，如果文件不存在不会报错，而是创建新文件，wirte写入操作会覆盖源文件内容
# 当访问模式为 'a' ,文件追加，如果文件不存在不会报错，而是创建新文件，wirte写入操作不会覆盖源文件内容
# 当访问模式为 'x+' 文件可读可写，遵循x（r/w/a）使用规则
# 当访问模式为 'xb' 文件已二进制形式，遵循x（r/w/a）使用规则
# 访问模式不写的话默认只读

# 1. 用户输入文件名 2.接收文件备份 3.将源文件读取内容写入备份文件中
"""old_fname = input('请输入要打开的文件名：')
print(old_fname)
# 对源文件名字根据扩展名进行下标定位
index = old_fname.rfind('.')   # 对字符串从右边（结尾）向左查找'.'的下标
# 判断文件名是否有效
if index > 0:  # 扩展名下标大于0 说明输入的文件名是合法的
    postfix = old_fname[index:]   # 获取文件扩展名 切片处理

new_fname = old_fname[:index] + '[备份]' + postfix
print(new_fname)

f_old = open(old_fname, 'rb')   # 打开用户输入的文件 二进制只读操作
f_new = open(new_fname, 'wb')   # 打开备份文件 二进制只写操作

# 对备份文件写入源文件内容
while True:   # 循环读取文件内容 每次读取1024个字节
    con = f_old.read(1024)
    if len(con) == 0:   # 当读取到的内容长度为零 说明读取完毕 退出while循环
        break
    f_new.write(con)    # 向备份文件写入读取到的内容

f_old.close()
f_new.close()
"""
# 文件备份步骤
# 1. 获取到源文件的名字，
# 2. 对源文件名字进行index = str.rfind()获取到扩展名所在的下标
# 3. 判断index是否大于0 大于零则合法
# 4. 通过获取到的下标对源文件名进行str[index:]切片处理，获取到源文件扩展名
# 5. 通过扩展名备份源文件
# 6. 打开源文件和备份文件，源文件只读，备份文科只写
# 7. 循环读取源文件内容写入到备份文件中


# 文件模块 os
import os   # 导入文件模块
# os.rename()    // 文件重命名
# os.rename('2.txt', '2.2.txt')

# os.remove()    //删除文件
# os.remove('2.2txt')

# os.mkdir()   //创建文件夹
# os.mkdir('aaa')

# os.rmdir()   //删除文件夹
# os.rmdir('aaa')

# os.getcwd()   //获取当前文件所在目录
print(os.getcwd())

# os.chdir()    //切换文件目录
# os.chdir('aaa')    # 切换到aaa文件夹

# os.listdir()    //获取当前文件夹所有的文件信息 返回列表
# print(os.listdir())


# 批量修改文件名字
# 1.先获取所有文件的列表listdir()，再给所有文件修改新名字
fnamelist = os.listdir()
flag = int(input('请输入给文件添加字符串重命名（1）\n 删除文件指定字符串重命名（2）：'))
for i in fnamelist:
    if flag == 1:    # 给文件添加字符串重命名
        new_name = 'python-' + i
    elif flag == 2:    # 删除文件指定字符串重命名
        num = len('python-')
        new_name = i[num:]
    os.rename(i, new_name)
